package common;

import io.github.bonigarcia.wdm.WebDriverManager;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.time.Duration;

public class Utils {
    public static WebDriver driver=null;
    public WebDriverWait wait=null;

    //详情页url
    public static String  detailUrl="http://8.148.81.42:8081/blog_detail.html?blogId=4";



    public Utils(String url)
    {
        driver=createDriver();
        //调用driver
        driver.get(url);
        //创建显示等待对象----需要用的时候再用，强制等待
        wait=new WebDriverWait(driver,Duration.ofSeconds(3));

    }
    //创建驱动对象
    public  static WebDriver createDriver()
    {
        if(driver==null)
        {
            //下载驱动
            //驱动程序管理的⾃动化
            System.setProperty("webdriver.chrome.driver", "D:\\qq\\chromedriver-win64(1)\\chromedriver-win64\\chromedriver.exe");

            ChromeOptions options = new ChromeOptions();
            // 添加配置，允许访问所有链接
            options.addArguments("--remote-allow-origins=*");

            //创建驱动对象
            driver=new ChromeDriver(options);

            //添加隐式等待--作用在所有元素上，等待页面元素
            driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(3));


        }
        return  driver;
    }




    //生成屏幕截图的方法
    public void  ScreenShot(String str) throws IOException//要传方法名
    {
        //年月日
        SimpleDateFormat sim1=new SimpleDateFormat("yyyy-MM-dd");
        //时分秒毫秒
        SimpleDateFormat sim2=new SimpleDateFormat("HHmmssSS");

        String dirTime=sim1.format(System.currentTimeMillis());
        String fileTime=sim2.format(System.currentTimeMillis());

        //文件名 ./src/test/java/images/2025-**-**/方法名（调用的那个方法需要截图）-时分秒毫秒---路径+年月日+时分秒毫秒
        String filename="./src/test/java/images/"+dirTime+"/"+str+"-"+fileTime+".png";


        File srcFile=((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
        FileUtils.copyFile(srcFile,new File(filename));
    }


    //登陆成功
    public static void login(){

        //先清空输入框
        driver.findElement(By.cssSelector("#username")).clear();
        driver.findElement(By.cssSelector("#password")).clear();

        //输入账号密码
        driver.findElement(By.cssSelector("#username")).sendKeys("lini");
        driver.findElement(By.cssSelector("#password")).sendKeys("123456");
        driver.findElement(By.cssSelector("#submit")).click();


        //屏幕截图
        //ScreenShot(Thread.currentThread().getStackTrace()[1].getMethodName());
        //校验登录是否成功-----注销按钮
        driver.findElement(By.cssSelector("body > div.nav > a:nth-child(6)"));
    }



}
